In various applications, such as compact video disc and high definition TV, in which video information is stored or transmitted digitally, it is desirable to compress the information so as to reduce required bandwidth or storage capacity. This compression can be accomplished by different coding strategies, such as prediction error coding, that take account of different characteristics of the video signal in order to reduce redundancy. For example, a 10:1 compression can generally be achieved by intraframe encoding, where, in one example, characteristics such as intensity, chrominance or luminance of picture elements (pels) are predicted based on the values of neighboring pels in the same frame, and the error or difference between the actual value and the predicted value is encoded. This type of coding is illustrated in a paper by W. H. Chen and C. H. Smith entitled "Adaptive Coding of Monochrome and Color Images," IEEE Trans. Communications, Vol. COM-25, pp. 1285-1292, Nov. 1977. Alternatively, in motion compensated prediction error (MCPE) encoding, the locations of moving objects are predicted, the actual and calculated intensities of the objects at those location are compared, and the differences are encoded. This type of coding is illustrated in a review paper by H. G. Musmann, P. Pirsch, and H. J. Grallert, entitled "Advances in Picture Coding," Proc. IEEE, VOL. 73, pp. 523-548, April 1985. As yet another example, interframe interpolation between the values of pels in spaced apart frames can be used to predict the values of pels in intermediate frames, as is also illustrated in the above cited Musmann paper.
When some of the above mentioned coding techniques, such as MCPE, are used, they typically produce a variable bit rate output. This is because the prediction errors vary in size. Since the errors are often quantized and encoded so as to achieve additional compression, for example by variable word length coding or run length encoding, time varying bit rate is thus produced. In other coding strategies, the bit rate varies due to the varying nature of the pictorial information being processed. As will be seen below, different bit rates are also produced when two or more encoding strategies are used, since each typically involves a different trade off between bit rate (compression) and pictorial accuracy (fidelity).
The task of keeping the average rate of generation of bits constant even in the presence of considerable instant to instant fluctuations has in the past been performed, for example, by writing the output of the coder to a buffer at a variable rate, and by reading the output of the buffer to a channel at the desired constant rate. To prevent buffer overflow, a buffering strategy is then employed in which buffer fullness is used to decrement or reduce the rate at which bits are applied to the buffer if the buffer is at or near its capacity. Such rate reduction can be achieved by, for example, increasing quantizer step size, adding low pass filtering, or otherwise changing the encoding strategy to one that produces fewer bits per frame. Conversely, buffer underflow is prevented by increasing the rate at which bits are applied to the buffer.
The buffer can, in some applications, be "real", i.e., hardware based. In other applications, such as packet networks where the channel rate can vary, the buffering functions can be "virtual", i.e., implemented in software. In the latter case, the virtual buffer serves to stabilize the short term average bit rate.
While the above described buffering generally works well if a single coding strategy is used, as they are in the Reference Model for visual telephony [H.261] proposed by CCITT, it has been found that if several coding techniques are used in combination on a group of frames, an even greater fluctuation in bit rate output from the encoder is encountered. This fluctuation cannot be handled by conventional buffering. The undesirable overflow and underflow conditions which result must be eliminated or reduced to a tolerable level in order to successfully process and decode the pictorial information.